<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>元素数据类型</title>
</head>
<body>
</body>
<script>
  /**1.元素数据在 DOM 中通过 Attr 类型表示。Attr 类型构造函数和原型在所有浏览器中都可以直接访问。技术上讲，属性是存在
   *   于元素 attributes 属性中的节点。Attr 节点具有以下特征
   *   + nodeType 等于 2；
   *   + nodeName 值为属性名；
   *   + nodeValue 值为属性值；
   *   + parentNode 值为 null；
   *   + 在 HTML 中不支持子节点；
   *   + 在 XML 中子节点可以是 Text 或 EntityReference。
   * 2.属性节点尽管是节点，却不被认为是 DOM 文档树的一部分。Attr 节点很少直接被引用，通常开发者更喜欢使用 
   *   getAttribute()、removeAttribute()和 setAttribute()方法操作属性。
   * 3.Attr 对象上有 3 个属性：name、value 和 specified。其中，name 包含属性名（与 nodeName一样），value 包含
   *   属性值（与 nodeValue 一样），而 specified 是一个布尔值，表示属性使用的是默认值还是被指定的值。
   * 4.可以使用 document.createAttribute()方法创建新的 Attr 节点，参数为属性名。
   * 5.可以使用元素的 setAttributeNode()方法。将创建好的属性对象添加到元素上。
   * 6.添加这个属性后，可以通过不同方式访问它，包括 attributes 属性、getAttributeNode()和 getAttribute()方法。
   *   其中，attributes 属性和getAttributeNode()方法都返回属性对应的 Attr 节点，而 getAttribute()方法只返回属
   *   性的值。
   * 7.将属性作为节点来访问多数情况下并无必要。推荐使用 getAttribute()、removeAttribute()和 setAttribute()方法
   *   操作属性，而不是直接操作属性节点
   * 
   * **/
</script>
</html>
